﻿namespace KinonekoSoftware.CodariaDB.Abstractions
{
    /// <summary>
    /// <see cref="IInspirationDummy"/> 接口表示灵感概述，这个接口并不会真实实现。
    /// </summary>
    /// <remarks>
    /// <para>这个接口阐述了灵感模型中的基本设计，这个灵感设计有点偏向于代码层面。</para>
    /// </remarks>
    public interface IInspirationDummy
    {
        /// <summary>
        /// 迭代
        /// </summary>
        /// <remarks>
        ///     <para>在原来的灵感基础上进一步迭代，迭代之后的灵感将保留痕迹。</para>
        /// </remarks>
        void Iteration();
        
        /// <summary>
        /// 解构
        /// </summary>
        /// <remarks>
        ///     <para>1. 拆解成对话</para>
        ///     <para>2. 拆解成帖子</para>
        ///     <para>3. 拆解成标签</para>
        ///     <para>4. 拆解成剧情骨架</para>
        ///     <para>5. 拆解成新的灵感</para>
        /// </remarks>
        void Destruction();
        
        /// <summary>
        /// 体现，实现
        /// </summary>
        /// <remarks>
        ///     <para>1. 拆解成对话</para>
        ///     <para>2. 拆解成帖子</para>
        ///     <para>3. 拆解成标签</para>
        ///     <para>4. 拆解成剧情骨架</para>
        ///     <para>5. 拆解成新的灵感</para>
        /// </remarks>
        void Implementation();
        
        /// <summary>
        /// 附加
        /// </summary>
        /// <remarks>
        ///     <para>1. 拆解成对话</para>
        ///     <para>2. 拆解成帖子</para>
        ///     <para>3. 拆解成标签</para>
        ///     <para>4. 拆解成剧情骨架</para>
        ///     <para>5. 拆解成新的灵感</para>
        /// </remarks>
        void Attachment();
        
        /// <summary>
        /// 重构
        /// </summary>
        /// <remarks>
        ///     <para>1. 重组成新的灵感</para>
        ///     <para>2. 重组成新的剧情点</para>
        /// </remarks>
        void Reconstruction();
        
        /// <summary>
        /// 是否已经拆分成其他子项，懒标记
        /// </summary>
        bool HasSubItem { get; set; }
        
        /// <summary>
        /// 是否为过期标签
        /// </summary>
        bool IsObsoleted { get; set; }
    }
}